import DynamicIcon from '@/components/common/DynamicIcon';

/**
 * 转换菜单数据以适配 Ant Design Menu 组件
 * @param {Array} menuData - 原始菜单数据
 * @returns {Array} 转换后的菜单数据
 */
export const transformMenuData = (menuData) => {
  if (!menuData || !Array.isArray(menuData)) return [];

  return menuData.map(item => {
    const transformedItem = {
      key: item.path,
      label: item.meta?.title || item.title
    };
    // 处理链接
    if(item.meta?.isLink){
      transformedItem.href = item.meta.isLink;
    }

    // 添加图标
    if (item.meta?.icon) {
      transformedItem.icon = <DynamicIcon iconName={item.meta.icon} />;
    }

    // 处理子菜单
    if (item.children && item.children.length > 0) {
      transformedItem.children = transformMenuData(item.children);
    }

    return transformedItem;
  });
};

/**
 * 在菜单树中根据key查找菜单项
 * @param {Array} items - 菜单项目数组
 * @param {string} key - 要查找的菜单项key
 * @returns {Object|null} 找到的菜单项或null
 */
export const findMenuItemByKey = (items, key) => {
  for (const item of items) {
    if (item.key === key) {
      return item;
    }
    if (item.children) {
      const found = findMenuItemByKey(item.children, key);
      if (found) {
        return found;
      }
    }
  }
  return null;
};